[chore] CI Actions v4 및 JDK 빌드 버전 정합#133
Conversation
변경 내용: - actions/checkout v3 → v4 (Node.js 16 EOL 대응) - actions/setup-java v3 → v4 - JDK 배포판 adopt → temurin (AdoptOpenJDK 프로젝트 종료, Eclipse Temurin 후속) - java-version 8 → 21 근거: 프로젝트 내 22개 번들 MANIFEST.MF 중 21개가 Bundle-RequiredExecutionEnvironment: JavaSE-21을 명시하고 있으며, CI의 java-version '8'은 실제 빌드 요구사항과 불일치했음. (나머지 1개 codegen.model은 JavaSE-1.8이나, JDK 21은 하위 호환)
기존 워크플로는 루트의 pom.xml을 빌드하도록 되어 있으나, 이 저장소는 대부분 Eclipse 플러그인(PDE) 프로젝트로 구성되어 루트에 Maven 빌드가 없어 "POM file pom.xml ... does not exist"로 빌드가 항상 실패했다. 표준 Maven으로 빌드 가능한 유일한 모듈인 egovframework.dev.imp.templates를 빌드하도록 --file 경로와 캐시 의존성 경로를 지정한다.
|
버전 정합(Actions v4·Temurin·JDK 21) 외에, 워크플로 빌드 단계가 실패하던 원인을 함께 수정했습니다. 기존 표준 Maven으로 빌드 가능한 유일한 모듈인 PDE 플러그인 전체 빌드(Tycho 도입 등)는 범위가 크므로 본 PR에서는 다루지 않았습니다. |
workflow 대상 플러그인 프로젝트제안해 주신 pom.xml 기반 빌드는 일반 jar 컴파일에 해당합니다. 하지만 말씀해 주신 것과 같이, 본 저장소는 22개 번들 전체가 Eclipse PDE(OSGi) 플러그인 구조로 구성되어 있습니다. 현재 Maven 빌드 가능한 플러그인 프로젝트는 egovframework.dev.imp.templates 하나 뿐이며, 기여자님께서도 이를 인지하여 추가 커밋을 해주신 것을 확인했습니다. workflow 결과물 배포 여부PR 코드에 따르면 가상 환경에서 packaging만 할 뿐, 그 결과물을 특정 경로에 배포하는 로직은 보이지 않습니다. 따라서 packaging 성공/실패 여부는 확인할 수 있지만, 그 결과물을 다운로드할 수는 없습니다. 하지만 이 egovframework.dev.imp.templates의 jar 파일을 특정 경로에 배포하더라도 단독으로 활용할 여지는 없습니다. 따라서 해당 프로젝트를 대상으로 하는 workflow는 PR처럼 packaging 성공/실패 여부만 확인하는 과정이면 충분합니다. 전자정부 표준프레임워크에 기여해 주셔서 감사합니다. |
개요
CI 워크플로(maven.yml)의 Actions 버전과 JDK 빌드 환경을 프로젝트 실제 요구사항에 맞게 정합합니다.
변경 내용
변경 근거
Actions v3 → v4
GitHub Actions v3 계열은 Node.js 16 런타임을 사용하며, Node.js 16은 2023-09-11 EOL되었습니다.
v4는 Node.js 20 기반으로, GitHub에서 권장하는 최신 안정 버전입니다.
adopt → temurin
AdoptOpenJDK 프로젝트는 Eclipse Adoptium(Temurin)으로 이관 완료되었습니다.
setup-javav4에서adopt는 레거시 호환 옵션이며,temurin이 후속 공식 배포판입니다.JDK 8 → 21
프로젝트 MANIFEST.MF 확인 결과:
Bundle-RequiredExecutionEnvironment: JavaSE-21을 요구egovframework.dev.imp.codegen.model)만JavaSE-1.8요구 (JDK 21은 하위 호환)기존 CI의
java-version: '8'은 실제 빌드 요구사항(JavaSE-21)과 불일치했으며,JDK 8 환경에서는 JavaSE-21을 요구하는 번들이 정상 빌드되지 않을 수 있습니다.
검증
python3 yaml.safe_load통과mvn -B package) 및 트리거 조건 변경 없음